/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Controller;

/**
 *
 * @author fagner
 */
import Dao.UsuarioDaoImpl;
import Model.Usuario;
import java.io.IOException;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import org.primefaces.context.RequestContext;

@ManagedBean
@SessionScoped
public class UsuarioController {
    
    private Usuario usuario = new Usuario();
    RequestContext context = RequestContext.getCurrentInstance();  
    FacesMessage msg = null;  
    
    boolean loggedIn = false;
    
    public Usuario getUsuario(){
        return usuario;
    }
    
    public void setUsuario(Usuario usuario){
        this.usuario = usuario;
    }
    
    public void logar() throws IOException{
        //usuario = new Usuario();
        //UsuarioDaoImpl impl = new UsuarioDaoImpl();
        //List lista = impl.list(usuario);
        System.out.println("Logar : "+usuario.getLogin());
        if(validateLogin(usuario)){
            //FacesContext.getCurrentInstance().addMessage(null, msg); 
            //loggedIn = true;
            //msg = new FacesMessage(FacesMessage.SEVERITY_INFO,"Sucesso no Login", "Login bem sucedido");
            FacesContext faces = FacesContext.getCurrentInstance();  
            ExternalContext contextExterno = faces.getExternalContext();  
            contextExterno.redirect("pageUser.jsf");
            
        }else{
            loggedIn = false;
            msg = new FacesMessage(FacesMessage.SEVERITY_WARN,"Erro no Login", "Login errado");
            FacesContext.getCurrentInstance().addMessage(null, msg);  
        }
    }
    
    public boolean validateLogin(Usuario usuario){
        UsuarioDaoImpl impl = new UsuarioDaoImpl();
        List lista = impl.list();
        for(int contador = 0; contador < lista.size();contador++){
            Usuario user = new Usuario();
            user = (Usuario) lista.get(contador);
            System.out.println("Context: "+usuario.getLogin());
            System.out.println("Database: "+user.getLogin());
            if(user.getLogin().equals(usuario.getLogin()) && user.getSenha().equals(usuario.getSenha())){
                System.out.println("True Login");
                return true;
            }
        }
        System.out.println("False Login");
        return false;
    }
}
